
//================v1要点总结===============
/**
 *  1. 题解1的思路，针对一个房间k而言，就是偷与不偷;
 * 偷k，则不能偷k-1,那么当前偷到金额的最大值，就是 前k-2个房间能偷到的最大值+当前房间的金额
 * 不偷k, 则就是前k-1个房间能偷到的最大值；
 * 最终最大金额为两者的最大值： 
 * f(k) = max{ f(k-1),f(k-2) + f(k)}
 */
/**
 * @param {number[]} nums
 * @return {number}
 */
var rob = function (nums) {
    let len = nums.length
    if (len === 1) {
        return nums[0]
    }

    if (len === 2) {
        return Math.max(nums[0], nums[1])
    }

    let fi
    let fi2 = nums[0]
    let fi1 = Math.max(nums[0], nums[1])
    for (let i = 2; i < len; i++) {
        fi = Math.max(fi1, fi2 + nums[i])
        fi2 = fi1
        fi1 = fi
    }
    return fi
};

console.log(rob([2, 3, 2, 3]))